package cn.edu.ncut.cs.springboot.petmanagementsystem.service;

import cn.edu.ncut.cs.springboot.petmanagementsystem.pojo.SearchHistory;

import java.util.List;
import java.util.Map;

/**
 * 搜索服务接口
 */
public interface SearchService {
    
    /**
     * 全局搜索
     * @param keyword 搜索关键词
     * @param type 搜索类型（all-全部, product-商品, service-服务）
     * @param userId 用户ID（用于记录搜索历史）
     * @return 搜索结果
     */
    Map<String, Object> globalSearch(String keyword, String type, Long userId);
    
    /**
     * 获取搜索建议
     * @param keyword 关键词前缀
     * @return 建议列表
     */
    List<String> getSearchSuggestions(String keyword);
    
    /**
     * 获取热门搜索
     * @param limit 限制数量
     * @return 热门搜索关键词列表
     */
    List<String> getHotSearches(int limit);
    
    /**
     * 获取用户搜索历史
     * @param userId 用户ID
     * @param limit 限制数量
     * @return 搜索历史列表
     */
    List<SearchHistory> getUserSearchHistory(Long userId, int limit);
    
    /**
     * 清除用户搜索历史
     * @param userId 用户ID
     */
    void clearUserSearchHistory(Long userId);
    
    /**
     * 记录搜索历史
     * @param userId 用户ID
     * @param keyword 搜索关键词
     * @param type 搜索类型
     */
    void recordSearchHistory(Long userId, String keyword, String type);
}
